Microprocessor control has afforded many advantages to many applications, particularly vehicle control. As microprocessors continue to become more sophisticated, additional features may be added to enhance control of the vehicle. In addition, an increasing number of vehicle accessories are controlled by microprocessors to customize the vehicle environment for one or more occupants. For example, power seats, power mirrors, stereo systems, and the like, may be controlled by microprocessors and include memory to store preferences for one or more users, such as radio station presets, or seat or mirror positions.
Microprocessor-based controllers are often given generic names to describe their function. For example, an engine control module (ECM) is used to control the engine, a transmission control module (TCM) is used to control an automatic transmission, and anti-lock braking system (ABS) controller may be used to control the vehicle brakes. As controllers become more sophisticated, various functions may be combined or integrated into a single controller. For example, a powertrain control module (PCM) may be used to control the engine and transmission. Similarly, a vehicle control module (VCM) may be used to control the engine, transmission, active suspension, power steering, ABS, and the like. The various controllers use permanent/non-volatile and temporary/volatile memory to store control parameter values and control logic to effect control over the various systems. Many systems now use adaptive control parameters which change over time to respond to changing system dynamics. For example, engine idle speed control (ISC) or fuel control parameters may be used to implement an adaptive control strategy to adjust for changes which occur due to wear of various engine components. Adaptive control parameters may be used in an active suspension system to adjust for the change in frequency response of the suspension components or to adapt to a particular vehicle loading. An automatic transmission may use adaptive control parameters to maintain consistent shift quality as various friction components wear or transmission fluid characteristics change.
In addition to adaptive control parameters, real-time controllers continually calculate and update variables based on the current operating conditions of the vehicle. These variables are typically stored in temporary memory such as RAM. As such, when the vehicle ignition is turned off, the values of these variables are lost. In contrast, it is often desirable to maintain the values for adaptive control parameters from one engine start to the next because they are typically slowly varying parameters which are set to a nominal value during manufacturing and then adjusted over the life of the vehicle. As such, these types of variables are often stored in a more permanent type of memory, generically referred to as keep-alive memory. The keep-alive memory allows modification of the parameter values and is not generally reset when the engine is stopped and the ignition key turned off.
A number of control parameter values which should not be modified are also determined by the manufacturer. For example, certain parameters affecting fuel economy, engine power, and exhaust emissions should not be modified by vehicle customers. These values, along with the control logic which executes the various control functions, are stored in permanent memory, such as ROM. Permanent memory may not be modified without replacing the physical IC chip (or reprogramming in the case of flash memory) and does not require any type of power to maintain its contents.
A service tool is often used during the process of diagnosing and repairing various vehicle components. The service tool typically includes a microprocessor which communicates with one or more microprocessors of the various vehicle controllers to aid in diagnosis and repair. Certain procedures used for diagnosis and repair require the servicing technician to reset one or more control parameter values stored in the keep-alive memory. For example, replacement of a component which affects the idle speed control or fuel control may require resetting of the adaptive control parameter values to their nominal settings. The current method for resetting keep-alive memory requires the removal of one or both of the battery cables to remove all power from the vehicle systems. The technician must wait a number of minutes to assure that any capacitive charge has been dissipated to allow the keep-alive memory to be cleared. However, this often results in the undesired loss of several other variables in various other vehicle systems and accessories, such as radio presets, seat positions, and the like.
Engineers may use a development tool to monitor and change various control parameters and control logic of the vehicle controller. This equipment is also used during development to select nominal values for various calibrations which may affect operation of the systems. Such equipment provides essentially unfettered access to all of the vehicle control parameters. As such, engineers could use this equipment to modify one or more variables which are stored in the temporary memory, or keep-alive memory. However, this requires detailed knowledge of the variable names and/or locations and their effect on vehicle operation. It is impractical and undesirable to provide such unfettered access to the general public or even to qualified service technicians due to the possibility of unauthorized and potentially dangerous modifications to the vehicle control. As such, it is desirable to provide a method of clearing or resetting only those control parameter values which are necessary to effect diagnosis or repair of a particular system or subsystem.